package com.zjkj.mp.dao.user;

import java.util.List;
import java.util.Map;

import com.zjkj.mp.utils.PaginatedResult;
import com.zjkj.mp.vo.MpAuthority;
import com.zjkj.mp.vo.user.MpUser;

/**
 * 
 * 登录验证与main主界面操作
 *
 * @author 陈晨
 * @history
 * <TABLE id="HistoryTable" border="1">
 * 	<TR><TD>时间</TD><TD>描述</TD><TD>作者</TD></TR>
 *	<TR><TD>2013-6-6</TD><TD>创建初始版本</TD><TD>陈晨</TD></TR>
 * </TABLE>
 */
public interface UserDao {
	
	/**
	 * 获取用户的权限列表
	 * @param User
	 * @return
	 */
	public List<MpAuthority> getQxdmList(String zgdm);
	
	/**
	 * 登录是否正确
	 * @param username
	 * @param password
	 * @return
	 */
	public MpUser loginUser(Map<String, Object> map);
	
	/**
	 * 根据用户id获取用户信息
	 * @param userId
	 * @return
	 */
	public MpUser getMpUser(int userId);
	
	/**
	 * 通过登录邮箱得到用户信息
	 * 
	 * @param email 登录邮箱
	 * @return 如果没有找到，返回NULL
	 */
	public MpUser getMpUserByEmail(String email);
	
	/**
	 * 添加用户
	 * @param user
	 */
	public void addUser(MpUser user);
	
	/**
	 * 得到用户列表
	 * @param params 查询参数，查询条件，如果得到所有用户，可以为null
	 */
	public PaginatedResult  getUserList(int pageNo,int pageSize,Map<String,Object> params);
	
	

	/**
	 * 改变账号状态
	 */
	public void updateUserState(int userId,String newState);	
	
 
	/**
	 * 更新用户新信息
	 * @param user
	 */
	public void updateInfo(MpUser user);
	
	/**
	 * 更新账户短信余额
	 * @param balance
	 */
	public void updateBalance(int userId,long balance);
	
	
	/**
	 * 得到余额信息
	 */
	public long getBalance(int userId);		 
}
